import React from 'react'

// 这是作为一个声明函数，第一个参数是一个 (纯函数) ，第二个和第三个是任意参数
// 权限管理
// 粗粒度的权限管理：页面级别的权限管理
// 细粒度的权限管理：页面元素级别的权限管理
export default role => WrapComponent => {
  console.log( role )
  return class extends React.Component {
    constructor (props) {
      super(props)
      this.state = {
        role: ''
      }
    }

    componentDidMount () {
      this.setState({ role: 'haha' })
    }

    render () {
      let { role } = this.state
			// 判断权限
			const flag = role.includes(role)
      return (
        <div>
				{
					flag ? <WrapComponent {...this.props} role={role} />
					: <h1>你没有权限访问</h1>
				}
				</div>
      )
    }
  }
}